home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
031-040
/
amok38
/
hotprog
/
hotprogz.zoo
/
HotProg
/
UserLib.mod
< prev
next >
Wrap
Text File
|
1990-03-14
|
1KB
|
54 lines
IMPLEMENTATION MODULE UserLib;
FROM Intuition IMPORT ScreenPtr;
FROM SYSTEM IMPORT ADDRESS;
PROCEDURE GetDiff(color0,color1 : INTEGER) : INTEGER;
VAR diff,red0,green0,blue0,red1,green1,blue1 : INTEGER;
BEGIN
red0 := color0 DIV 256;
red1 := color1 DIV 256;
green0 := (color0-red0*256) DIV 16;
green1 := (color1-red1*256) DIV 16;
blue0 := (color0-red0*256-green0*16);
blue1 := (color1-red1*256-green1*16);
diff := (red0-red1+1)*(green0-green1+1)*(blue0-blue1+1);
IF diff < 0 THEN diff := diff*(-1) END;
RETURN diff;
END GetDiff;
PROCEDURE GetComplementColors(screenPtr : ScreenPtr;VAR col0,col1 : INTEGER);
VAR max,lastCol,diff,i,a : INTEGER;
colorTable : ADDRESS;
colors : ARRAY[0..31] OF INTEGER;
colorPtr : POINTER TO INTEGER;
BEGIN
max := 0;
IF col1 >31 THEN col1 :=31 END;
IF col0 >31 THEN col0 :=31 END;
colorTable := screenPtr^.viewPort.colorMap^.colorTable;
lastCol := col1;
FOR i := 0 TO lastCol DO
colorPtr := colorTable;
colors[i] := colorPtr^;
INC(colorTable,2);
END;
FOR a := col0 TO lastCol-1 DO
FOR i := a TO lastCol DO
diff := GetDiff(colors[a],colors[i]);
IF diff > max THEN
col0:= a;
col1:= i;
max := diff;
END;
END;
END;
END GetComplementColors;
END UserLib.